AJAX

头像
jh2k15
    阅读 2 分钟
    https://segmentfault.com/a/11...

    AJAX Asynchronous JavaScript and XML(异步的js和XML)

    ajax无非是两个过程,发出请求和响应请求
    XML是The Extensible Markup Language 可扩展标识语言
    XML最初设计的目的是弥补HTML的不足,以强大的扩展性满足网络信息发布的需要,后来逐渐用于网络数据的转换和描述。
    XHTML是The Extensible HyperText Markup Language 可扩展超文本标识语言
    XML虽然数据转换能力强大,完全可以替代HTML,但面对成千上万已有的站点,直接采用XML还为时过早。因此,我们在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML。简单的说,建立XHTML的目的就是实现HTML向XML的过渡
    HTML Hypertext Markup Language 超文本标记语言

    XMLHttpRequest 对象

    XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果

    属性

    readyState: 每当 readyState 改变时,就会触发 onreadystatechange 事件存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
    0: 请求未初始化
    1: 服务器连接已建立
    2: 请求已接收
    3: 请求处理中
    4: 请求已完成,且响应已就绪

    responseText #服务器返回的响应文本
    responseXml #服务器返回的响应xml
    status #服务器的http状态码 200: "OK" 404: 未找到页面
    statusText #服务器的http状态原因文本
    onreadystatechange(){} #事件被触发 5 次(0 - 4),对应着 readyState 的每个变化

    request = new XMLHttpRequest(); // 新建XMLHttpRequest对象
    
    request.onreadystatechange = function () { // 状态发生变化时,函数被回调
        if (request.readyState === 4) { // 成功完成
            // 判断响应结果:
            if (request.status === 200) {
                // 成功,通过responseText拿到响应的文本:
               console.log(request.responseText);
            } else {
                // 失败,根据响应码判断失败原因:
                console.log(request.status);
            }
        } else {
            // HTTP请求还在继续...
        }
    }
    function GetXmlHttpObject() {
      var xmlHttp=null;
      try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
       }
      catch (e) {
        // Internet Explorer
        try {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        }
      return xmlHttp;
    }
    
    var xmlHttp=GetXmlHttpObject();
    // 发送请求:
    request.open('GET', '/api/categories');
    request.send();

    jh2k15
    199 声望5 粉丝